#pragma once
#include <stdio.h>
#include <stdlib.h>

#define TRUE (1)
#define FALSE (0)

#define ERR_EXIT(m) \
  do { \
    perror(m); \
    exit(EXIT_FAILURE); \
  } while (0)


#define MAXLINE 1024 /* 输入行的最大长度 */
#define MAXARG 20    /* 每个简单命令的最大参数个数 */
#define PIPELINE 5   /* 一个管道行中简单命令的最大参数个数 */
#define MAXNAME 100  /* IO重定向文件名的最大长度 */

typedef struct command {
    char *args[MAXARG + 1];  /* 解析出的简单命令参数列表 */
    int infd;  /* 该命令的输入文件描述符 */
    int outfd;  /* 该命令的输出文件描述符 */
    int errfd;  /* 该命令的错误文件描述符 */
} COMMAND;

